home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
MEDICAL
/
2608A.ZIP
/
BUGFIXGP.ZIP
/
3YRLABCD.SRC
next >
Wrap
Text File
|
1990-11-21
|
11KB
|
591 lines
;\|
;3YRLABCD.SRC Translated from 3YRLABCD.EDT by Roger Mathew's EDT2SRC Ver 4.11
;START 01:33:20 PM 21/ 6/90 |
RECALLSX:
define(Z30|A|30||)
define(YES.NO|A|1||)
define(CHK_FLD|N|8||)
define(NUM_N|N|2||)
define(NUM|A|2||)
define(DATE_A|A|8||)
define(DATE_B|A|10||)
define(TO_DATE|S|8||)
define(WAIT|N|3||)
define(MEM_AD|A|22||)
define(SENT_DATE|S|8||)
define(CHK_DATE|S|8||)
define(PUNC2|N|2||)
define(CH_NAME|A|15||)
define(HIS|A|3||)
define(CLIN_DAY|A|25||)
define(CLIN_TIME|A|10||)
define(CNTR|N|2||)
define(FLAG|A|1||)
define(AMOUNTX|N|4||)
define(S10|A|10||)
define(DATECOD|S|8||)
define(CODER|A|5||)
define(C30|A|30||)
define(TM|A|27||4)
define(A30|A|30||)
define(CHOICE|N|1||)
define(TDND|S|8||)
define(DATERP|S|8||)
define(B30|A|30||)
define(S1|A|1||)
define(TD|S|8||)
define(A8|A|8||)
define(B8|A|8||)
define(YES.NO|A|1||)
define(N5|N|5||)
define(D1|A|1||)
define(NY|A|1||)
define(CODEX1|S|8||)
define(CTR|N|2||)
define(DATEN|N|2||)
define(DATEX|S|8||)
define(ARRAY1|A|30||3)
define(ARRAY2|A|22||3)
define(ARRAY3|A|22||3)
define(ARRAY4|A|4||3)
define(ARRAY5|S|8||3)
define(TIT|A|4||)
define(PATIENT1A|A|30||)
define(PUNC1|N|2||)
define(N.2.0.P|N|2||)
define(P.2.0.1|N|2||)
define(P.2.0.2|N|2||)
define(PATIENT2|A|30||)
define(P.2.0.3|N|2||)
define(RECTYPE1|A|4||)
define(RECTYPE2|A|4||)
define(PATIENT1|A|30||)
define(DOB1|D|10||)
define(DOB2|D|10||)
STARTREC:
open(PATIENT||0|FILE_LOCK)
open(GPSETUP||0|)
find(B|HEADING||)
D1 = ("")
date(TD|G)
YES.NO = ("")
DATEX = (0)
CODEX1 = (0)
NY = ("")
trap(I|G|PRINTSTOP)
trap(S|I)
trap(D|I)
trap(F|I)
trap(R|I)
trap(B|I)
trap(G|I)
trap(H|S|HELP)
trap(M|I)
trap(N|I)
trap(Q|G|MENU)
trap(J|G|LASTSEEN)
goto LASTSEEN
mount(RECALLS|S)
enter(RECTYPE1||||Y|Y|N|||N)
enter(RECTYPE2||||Y|Y|N|||N)
enter(CTR|"123456789"|||N|Y|N|||N)
enter(CODEX1|||RECALLSX|N|Y|N|||N)
DATEXX:
NY = ("")
enter(YES.NO|"YN"|||Y|Y|N|||N)
CODEX1:
RECSTART:
COD.PAT.NAME = ("A")
find(G|COD.PAT.NAME|EXIT|N)
RECTEST:
if COD[CTR] = ("HYS") goto NEXTRECALL
if COD[CTR] = ("VIR") goto NEXTRECALL
if COD[CTR] = ("REF") goto NEXTRECALL
if COD[CTR] = ("MOV") goto NEXTRECALL
if RECTYPE1 <> ("") then if RECTYPE1 > (COD[CTR]) goto NEXTRECALL
if RECTYPE2 <> ("") then if RECTYPE2 < (COD[CTR]) goto NEXTRECALL
if COD.D[CTR] > (CODEX1) goto NEXTRECALL
if COD.D[CTR] = (0) goto NEXTRECALL
RECORD.NUMBER = (COD.REF)
DATECOD = (COD.D[CTR])
CODER = (COD[CTR])
find(M|RECORD.NUMBER|EXIT|)
DATERP = (COD.D[CTR])
if NY = ("") do
{
gosub PRINTRECAL
}
else
{
gosub RECLABPRIN
}
NEXTRECALL:
find(N|RECALLS|EXITX|)
goto RECTEST
MOUNTRECAL:
mount(RPLABELS|R|P)
pchr(P|10)
pchr(P|11)
pchr(P|4)
pchr(P|1)
pset(132|66|60)
trap(I|G|PRINTSTOP)
trap(P|S|RECHEAD)
AMOUNTX = (0)
gosub RECHEAD
ret
PRINTRECAL:
pfmt(18|||N|N|)
AMOUNTX = (AMOUNTX+1)
DATECOD = (0)
CODER = ("")
ret
RECHEAD:
pfmt(16|||N|N|)
pfmt(17|||N|N|)
ret
RECALLS:
trap(P|D)
ptof
if D1 = ("X") then goto RECALLSX
if YES.NO = ("Y") do
{
gosub RECLABS
}
else
{
goto RECALLSX
}
goto RECSTART
TOPOF:
ptof
ret
RECLABS:
NY = ("X")
trap(P|D)
trap(I|S|PRINTSTOP)
pchr(P|4)
mount(NEW|R|P)
pset(50|18|18)
D1 = ("X")
ret
PRINT_LAB:
pblnk(4)
pfmt(1|||N|N|)
pblnk(2)
pfmt(2|||N|N|)
pblnk(2)
pfmt(3|||N|N|)
pblnk(4)
if FLAG = ("X") goto EXIT
ret
CL_ARRAY:
clrmem(ARRAY1|3)
clrmem(ARRAY2|3)
clrmem(ARRAY3|3)
clrmem(ARRAY4|3)
clrmem(ARRAY5|3)
ret
RECLABPRIN:
gosub SEXIST
gosub NEWX
NY = ("X")
DATECOD = (0)
CODER = ("")
CNTR = (CNTR+1)
ARRAY1[CNTR] = (Z30)
ARRAY2[CNTR] = (ADDRESS1)
ARRAY3[CNTR] = (AREA)
ARRAY4[CNTR] = (COD[CTR])
ARRAY5[CNTR] = (COD.D[CTR])
if CNTR = (3) gosub PRINT_LAB
ret
EXITX:
if NY <> ("") do
{
CNTR = (2)
FLAG = ("X")
gosub RECLABPRIN
}
goto RECALLS
REPONLY:
run("REPONLY")
SEXIST:
if SEX = ("M") then TIT = ("Mr.")
if SEX = ("F") do
{
if MARITAL.STATUS = ("M") do
{
TIT = ("Mrs.")
}
else
{
TIT = ("Ms.")
}
}
if SEX = ("") then TIT = ("Ms.")
trim(TIT|T)
ret
NEWX:
NY = (" ")
PATIENT1A = (PATIENT.NAME)
trim(PATIENT1A|T)
PUNC1 =loc(","|PATIENT1A|1||27)
N.2.0.P =siz(A|PATIENT.NAME)
P.2.0.1 = (PUNC1-1)
PATIENT2 =mid(PATIENT.NAME|1|P.2.0.1|)
P.2.0.2 = (PUNC1+2)
P.2.0.3 = (N.2.0.P-P.2.0.2+1)
PATIENT1 =mid(PATIENT1A|P.2.0.2|P.2.0.3|)
trim(PATIENT1|T)
trim(PATIENT2|T)
Z30 = (TIT+PATIENT1+NY+PATIENT2)
ret
CLEARALL:
clr(PATIENT|B)
clr(RECALLS|B)
S1 = ("")
DATEX = (0)
YES.NO = ("")
ret
EXIT:
run("recmenu")
EXIT1:
run("recmenu")
PRINTSTOP:
pon(S)
clrlne(1|25)
pmsg("CONTINUE ? (Y/N):"|30|12|N|N|S|)
enter(YES.NO|"YN"||PRINTSTOP|Y|Y|N|48|12|N)
if YES.NO <> ("Y") then run("recmenu")
pon(P)
ret
MENU:
TM[1] = (" 1 - EXIT 01011")
menu(1|20|2|23|0|TM|CHOICE|1|22|MENU||"-------RECALLS--------"|N)
on(CHOICE|G|EXIT1|MENU)
TRACE:
break
ret
FILE_LOCK:
pmsg("FILE PATIENT AND/OR RECALLS IS IN USE - EXIT"|20|24|Y|N|S|)
clrlne(1|24)
run("recmenu")
HELP:
saves(1)
window(1|23|22|78)
pmsg(" SMEAR RECALLS"|1|1|N|Y|S|)
pmsg(" ============="|1|2|N|Y|S|)
pmsg("1.USE UPDATE PROGRAM AND MAKE SURE ALL WOMEN BETWEEN 33 AND 65 ARE ENTERED"|1|3|N|Y|S|)
pmsg("2.ALL THESE WOMEN MUST HAVE A RECALL DATE."|1|4|N|Y|S|)
pmsg("3.RUN REPORT ONLY TO GET LATEST UPDATE ON TOTAL AT-RISK GROUP"|1|5|N|Y|S|)
pmsg("4.RECALL EVERY MONTH ON THE 16th + A DAY OR TWO"|1|6|N|Y||)
pmsg("5.CHECK OFF AGAINST RECALL LIST. ALL NON-ATTENDERS WILL BE ASKED AGAIN"|1|7|N|Y|S|)
pmsg("6.NON-ATTENDERS WILL BE THOSE WHO ARE MORE THAN ONE MONTH BEHIND"|1|8|N|Y||)
pmsg(""|1|9|N|Y|S|)
pmsg(" CODES"|1|10|N|Y|S|)
pmsg(" ====="|1|11|N|Y|S|)
pmsg("CODE 1 = SMEARS"|1|12|N|Y|S|)
pmsg("CODE 2 = CONTRACEPTION"|1|13|N|Y|S|)
pmsg("CODE 3 = IMMUNISATION"|1|14|N|Y|S|)
pmsg("CODE 4 = DIABETES"|1|15|N|Y|S|)
pmsg("CODE 5 = EPILEPSY"|1|16|N|Y|S|)
pmsg("CODE 6 = THYROID"|1|17|N|Y|S|)
pmsg("CODE 7 = ANGINA AND HEART DISEASE"|1|18|N|Y|S|)
pmsg("CODE 8 = ASTHMA"|1|19|N|Y|S|)
pmsg("CODE 9 = BP"|1|20|N|Y|S|)
pmsg(""|1|21|Y|N|S|)
redsp(1)
ret
LASTSEEN:
trap(I|S|PRINTSTOP)
trap(J|G|STARTREC)
mount(LABS|S)
MEM_AD = ("1")
enter(MEM_AD||||Y|N|N|||N)
enter(TO_DATE||||N|N|N|||N)
enter(CHK_DATE||||N|N|N|||N)
enter(DOB1||||N|N|N|||N)
enter(DOB2||||N|N|N|||N)
SENT_DATE = (TD)
enter(YES.NO|"YN"|||Y|Y|N|||N)
if YES.NO <> ("Y") goto LASTSEEN
gosub RECLABS
ADDRESS1 = (MEM_AD)
find(G|ADDRESS1|EXIT|)
TEST_SEEN:
if DATE.OF.BIRTH < (DOB1) goto NEXT_SEEN
if DATE.OF.BIRTH > (DOB2) goto NEXT_SEEN
if DATE_SEEN > (SEEN) do
{
SEEN = (DATE_SEEN)
save(PATIENT|N|N)
find(M|ADDRESS1||)
}
if SEEN > (DATE_SEEN) do
{
DATE_SEEN = (SEEN)
save(PATIENT|N|N)
find(M|ADDRESS1||)
}
if SEEN < (CHK_DATE) do
{
if SENT_FOR > (TO_DATE - 365) goto NEXT_SEEN
gosub PRINT_SEEN
SENT_FOR = (SENT_DATE)
save(PATIENT|N|N)
find(M|ADDRESS1||)
}
NEXT_SEEN:
find(N|PATIENT|EXITXX|)
pmsg(RECORD.NUMBER|1|1|N|N|S|)
goto TEST_SEEN
PRINT_SEEN:
gosub SEXIST
gosub NEWX
gosub SEEN_PRINT
ret
SEEN_PRINT:
WAIT = (WAIT+1)
if WAIT = (195) do
{
pmsg(WAIT;" printed - change cards and press ret..."|10|20|Y|N|S|)
WAIT = (0)
}
pblnk(6)
pfmt(1|||N|N|)
pblnk(2)
pfmt(2|||N|N|)
pblnk(2)
pfmt(3|||N|N|)
pblnk(4)
pfmt(4|||N|N|)
ret
EXITXX:
goto EXIT
\R RPLABELS
& & &
& & &
& & &
& & & & & &
&
&
&
&
PATIENT - RECALL REPORT- & CODE (& )
------------------------------------------------------------------------------------------
& & & (& )& & [&]
\
ARRAY1[1]
ARRAY1[2]
ARRAY1[3]
ARRAY2[1]
ARRAY2[2]
ARRAY2[3]
ARRAY3[1]
ARRAY3[2]
ARRAY3[3]
ARRAY4[1]
ARRAY5[1]
ARRAY4[2]
ARRAY5[2]
ARRAY4[3]
ARRAY5[3]
Z30
ADDRESS1
AREA
DATERP
TD
CTR
PATIENT.NAME
ADDRESS1
AREA
CODER
DATECOD
AMOUNTX
DOCTOR
\
\STRECALLS
YOU MAY JUMP TO PRINT "NOT SEEN" LABELS
This will recall all recall code 1 except "HYS;VIR;MOV;REF;ETC"
RECALLS
╔════════════════════════════════════════╗
║ ║
║ From Code:& to Code:& ║
║ ║
║ Recall code:[& ] ║
║ ║
║ Up to Date:& Labels?:& ║
╚════════════════════════════════════════╝
F1 - Help "Printer on for labels" Esc - Exit
\
RECTYPE1
RECTYPE2
CTR
CODEX1
YES.NO
\
\STNOTE
RECALLS - WHAT TO DO
====================
1. TO TAG ALL POTENTIAL RECALLS ANSWER RUN RECALLS AT RISK FROM MAIN MENU.
(THIS WILL TAG A GIVEN AGE GROUP WITH CODE <****>)
2. TO UPDATE THE <****> USE EASY SMEAR /IMMUNISATION UPDATE PROGRAM.
3. IF YOU ANSWER NO TO REPORT ONLY YOU WILL PRINT A LIST OF OUTSTANDING
RECALLS WITH OR WITHOUT LABELS.
6. PRINT OUT THESE AND SEND TO PATIENTS.
7. UPDATE RESULTS USING EASY RECALL MAINTENANCE
NOTE: THIS PROGRAM WILL ALWAYS PRINT OUT "ALL" OUTSTANDING RECALLS.
========================
\
\
\STLABS
PRINTS ADDRESSES ON CARDS FOR 3 YEAR CHECK
╔═══════════════════════════════════════╗
║ From Address:& ║
║ Target Date :& eg 01/04/91 ║
║ 3 years ago :& eg 01/04/88 ║
║ From Dob 75 :& eg 01/04/1914 ║
║ To Dob 16 :& eg 01/04/1975 ║
║ CONTINUE:& ║
╚═══════════════════════════════════════╝
REQUIRES CARDS IN PRINTER REVERSE SIDE
Esc - Exit or stop printing
\
MEM_AD
TO_DATE
CHK_DATE
DOB1
DOB2
YES.NO
\
\R NEW
&
&
&
-
\
Z30
ADDRESS1
AREA
\